<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <style>
        html {
            overflow: hidden;
            height: 100%
        }

        body {
            /* 视差元素的父级需要3D视角 */
            perspective: 100px;
            transform-style: preserve-3d;
            height: 100%;
            overflow-y: scroll;
            overflow-x: hidden;
        }

        #app {
            width: 100vw;
            height: 200vh;
            background: skyblue;
            padding-top: 100px;
        }

        .one {
            width: 500px;
            height: 200px;
            background: #409eff;
            transform: translateZ(0px);
            margin-bottom: 50px;
        }

        .two {
            width: 500px;
            height: 200px;
            background: #67c23a;
            transform: translateZ(-1px);
            margin-bottom: 150px;
        }

        .three {
            width: 500px;
            height: 200px;
            background: #e6a23c;
            transform: translateZ(-2px);
            margin-bottom: 150px;
        }
    </style>
    <!-- <ul>
        <li>容器设置上 transform-style: preserve-3d 和 perspective: xpx，那么处于这个容器的子元素就将位于3D空间中，</li>
        <li>子元素设置不同的 transform: translateZ()，这个时候，不同元素在 3D Z轴方向距离屏幕（我们的眼睛）的距离也就不一样</li>
        <li>滚动滚动条，由于子元素设置了不同的 transform: translateZ()，那么他们滚动的上下距离 translateY 相对屏幕（我们的眼睛），也是不一样的，这就达到了滚动视差的效果</li>
      </ul> -->
    <div id="app">
        <div class="one">one</div>
        <div class="two">two</div>
        <div class="three">three</div>
    </div>
</body>

</html>